package com.zhiyin.seal.service;

import com.zhiyin.seal.entity.bo.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 审批服务
 */
public interface ApprovalService {

    ApprovalProcessBo getApprovalProcessById(Long processId);

    List<ApprovalProcessBo> getApprovalProcessList(Long companyId);

    List<ApprovalProcessBo> getApprovalProcessListBySealId(Long sealId);

    Boolean updateApprovalProcess(ApprovalProcessBo approvalProcessBo);

    Boolean removeApprovalProcess(Long processId);

    Boolean removeCompanyApprovalProcess(Long companyId);

    List<ApprovalUserBo> getApprovalUserList(Long processId);

    List<ApprovalCCBo> getApprovalCCList(Long processId);

    Long addApprovalProcess(ApprovalProcessBo approvalProcessBo);

    Long getApprovalProcessId(Long sealId,List<Long> departmentIds,Long companyId);

    Boolean addApprovalUserList(Long processId,List<ApprovalUserBo> approvalUserBos);

    Boolean addApprovalCCList(Long processId,List<ApprovalCCBo> approvalCCBoList);

    Boolean removeApprovalUserList(Long processId);

    Boolean removeApprovalUser(Long userId,Long companyId);

    Boolean removeApprovalCCList(Long processId);

    Boolean removeApprovalCC(Long userId,Long companyId);

    Boolean removeApprovalProcessBySealId(Long sealId);

    Boolean getHasApprovalProcess(Long sealId,Long departmentId,Long companyId);

    ApprovalProcessBo getApprovalProcessByNameSealIdCompanyId(String name,Long sealId,Long companyId);
}
